﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Qiang.Topology.Geometries;

namespace Qiang.Data
{
    public interface IExtent
    {

        #region 属性

        double MinX { get; set; }

        double MaxX { get; set; }

        double MinY { get; set; }

        double MaxY { get; set; }

        bool IsEmpty { get; }

        double Width { get; set; }

        double Height { get; set; }

        Coordinate Center { get; }

        #endregion


        #region 方法

        bool Contains(IExtent ext);
        
        bool Contains(Coordinate pt);

        bool Contains(ISegmentShape segment);
        
        bool Intersects(IExtent ext);

        bool Intersects(IGeometry Geometry);

        IExtent Union(IExtent extent);

        IExtent Copy();

        IEnvelope ToEnvelope();

        IPolygon ToPolygon();

        #endregion

    }
}
